package com.giacom.dice.business.combination.impl;

import com.giacom.dice.business.combination.Combination;
import com.giacom.dice.business.dice.Dice;
import com.giacom.dice.business.player.Player;

/**
 * Implementa a contagem para uma quadra
 * Vale 40 pontos
 * 
 * @author Sandro
 *
 */
public class CombinationQua implements Combination {

    Player p = null;
    
    /**
     * TODO: rever esta logica
     * explicar ela
     */
    public int getValue() {
        
        int val1 = 0, val2 = 0;
        int co1 = 0, co2 = 0;
        
        int value = 0;
        
        Dice[] dices = p.getAllDices();
        
        for (int i = 0; i < dices.length; i++) {
            
            //esta iniciando a jogada, nao calcula
            if(dices[i].getValue() == 0) break;
            
            if (val1 == 0){
                val1 = dices[i].getValue();
                co1 ++;
            }else{
                if (val1 == dices[i].getValue()){
                    co1++;
                    continue;
                }
                
                if (val2 == 0){
                   val2 = dices[i].getValue(); 
                   co2++;
                   continue;
                }
                if (val2 == dices[i].getValue()){
                    co2++;
                }
                
            }
            
        }
        
        if((co1 >= 4) || (co2 >= 4)){
            value = 40;
        }
        
        return value;
        
    }

    public void setPlayer(Player p) {
        this.p = p;
    }
    
    @Override
    public String toString() {
        return "Quadra";
    }

}
